1. Technical Field
This disclosure generally relates to content management systems, and more specifically relates to profiling in a content management system.
2. Background Art
A content management system (CMS) allows many users to efficiently share electronic content such as text, audio files, video files, pictures, graphics, etc. Content management systems typically control access to content in a repository. A user may generate content, and when the content is checked into the repository, the content may be subsequently processed by the CMS according to predefined rules. A user may also check out content from the repository, or link to content in the repository while generating content. The rules in a CMS assure that content that comes into or out of the system or that is linked to meets desired criteria specified in the rules.
Profiling is an XML content management technique in which elements of an XML document may be tagged with applicability metadata. This applicability metadata can be used by the CMS to filter content and only allow certain elements to be included. Currently, a profile for a document allows the content management system to extract only that content from the document that matches the profile. For example, a document for an owner's manual may include instructions in English and Spanish. If a new document is created with a profile of English, only the elements that match the English profile will be included in the new document. Similarly, if a new document is created with a profile of Spanish, only the elements that match the Spanish profile will be included in the new document. Profiling thus allows a way to select and filter content when a document is reconstituted (i.e. assembled) according to one or more defined profiles for the document.
Method 200 in FIG. 2 is a prior art method for reconstituting a document that may include a defined profile. Method 200 begins when a document needs to be reconstituted (step 210). The next element is retrieved (step 220). If the element has applicability metadata (step 230=YES), the element is included in the reconstituted document only if the document's profile matches the applicability metadata (step 250). If the element does not have applicability metadata (step 230=NO), the element is included in the document (step 240). If there are more elements to process (step 260=YES), method 200 loops back to step 220 and continues until there are no more elements to process (step 260=NO).
A sample document 300 is shown in FIG. 3. We assume document 300 is being reconstituted from a document that includes a link to document N 320, which includes two separate elements that each has applicability metadata. Note the document profile 310 is English. When the content management system encounters document N to incorporate into the reconstituted document 300, the CMS sees that document N 320 includes applicability metadata. Because the profile of the document 300 being reconstituted is English, which matches the applicability metadata for the first element 330, the first element 330 is incorporated into document 300 as shown in FIG. 3. Because the English profile of the document being reconstituted does not match the Spanish applicability metadata for the second element 340, the second element 340 is not included in the reconstituted document 300. Note that profiling may also be used when common elements are mixed with specific elements that vary based on applicability metadata. For example, a document might include a shipping address that has a street address, city and state that are common for all destinations. However, the format and location of the postal code varies depending on whether the address is an address in the United States or an address in a foreign country. In this case, there would be a single instance of the common data, with multiple instances of the postal code tagged with appropriate applicability metadata. These very simplified examples show how profiling is used in the prior art to include or exclude parts of a document depending on the profile of the document being created and the applicability metadata in the shared documents.
One of the significant features of content management systems is the ability to reuse data by sharing a common document in multiple parent documents. For example, if a content management system is used in a publishing company, a simple document that includes a copyright statement could be included in many other documents, which saves time by not requiring the author to type in a separate copyright statement for each created document. In this simple example, a copyright statement would be stored as a separate document in the repository, and each document that wants to use the copyright statement includes a link to the copyright statement document.
Sharing content in a content management system can create problems. For example, let's assume a first author creates a simple first document and checks the first document into the repository, and also creates a second document that includes a link to the first document. Now let's assume a second author is creating a third document, and determines he can simply link to the first document because the second author needs exactly what is in the first document to be incorporated into the third document. However, after the second author links to the first document in the third document, the first author could go back and change the first document. The change the first author makes to the first document might be inconsistent with the context where the second author used the first document, thereby creating a potential problem. Without a way to share content in a way that avoids this potential problem, context problems may arise when a shared document is changed.